In computer science, a virtual machine (VM) is a portion of software that, when executed on appropriate hardware, creates an environment allowing the virtualization of an actual physical computer system. Each VM may function as a self-contained platform, running its own operating system (OS) and software applications (processes). Typically, a virtual machine monitor (VMM) manages allocation and virtualization of computer resources and performs context switching, as may be necessary, to cycle between various VMs.
A host machine (e.g., computer or server) is typically enabled to simultaneously run multiple VMs, where each VM may be used by a remote client. The host machine allocates a certain amount of the host's resources to each of the VMs. Each VM is then able to use the allocated resources to execute applications, including operating systems known as guest operating systems. The VMM virtualizes the underlying hardware of the host machine or emulates hardware devices, making the use of the VM transparent to the guest operating system or the remote client that uses the VM.
Many organizations have started to virtualize their IT environments to save cost. Because larger numbers of systems are becoming virtualized, organizations are looking for more efficient backup and quicker recovery of their virtual systems to maintain business productivity and cost savings that server virtualization delivers. This includes not only the guest VMs, but also the applications that have also been installed on those guest VMs, such as Microsoft Exchange®, SQL Server®, and Active Directory®. However, typical backup technology has not been built specifically for protecting virtual environments.